package org.rguess.patterns.interfaces.composite;

public class Program {
	public static void main(String[] args) {
		// 建立一个树形结构
		Composite root = new Composite("根目录");
		// 创建一个根元素（根元素也是复合元素）
		root.Add(new Leaf("----子项 A"));
		root.Add(new Leaf("----子项 B"));
		Composite comp = new Composite("组合 X");
		// 创建一个复合元素
		comp.Add(new Leaf("---子项 XA"));
		// 为复合元素添加单纯元素
		comp.Add(new Leaf("---子项 XB"));
		root.Add(comp);
		// 将复合元素添加到根元素
		root.Add(new Leaf("--子项 C"));
		// 将单纯元素添加到根元素
		// 添加和移出一个子项
		Leaf l = new Leaf("--子项 D");
		root.Add(l);
		root.Remove(l);
		// 递归输出子节点
		root.Display(1);
	}
}